Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / docs / en / messaging.md

Displaying Raw • View renderedDownload


docs/en/messaging.md dev (c9f60cc5) Text, 4.42 KB

Tc9d1d9# LXMF messaging

MeshChatX uses LXMF (LXMF Message Format) for direct and store-and-forward messaging over Reticulum. Each identity has an Ta5d6ff`LXMRouter` registered under aspect Ta5d6ff`lxmf.delivery`.

Tc9d1d9## Conversations

Open **Messages** to see your conversation list. Each row is a peer destination you have exchanged traffic with or selected from announces.

The Messages sidebar icon shows a red count when you have unread LXMF conversations. Opening a thread marks it read. If a new message arrives while that thread is already open, it is marked read without needing to switch away and back.

From a conversation you can:

Tff7b72- Send and receive text messages
Tff7b72- Attach images, audio clips, and files
Tff7b72- Reply with quotes and add reactions
Tff7b72- Organise threads into folders and pin important chats
Tff7b72- Run bulk operations on multiple conversations

Incoming messages arrive over the WebSocket as Ta5d6ff`lxmf_message` events. The UI updates without a full page reload.

Tc9d1d9## Attachments and rich content

The composer supports:

Tff7b72- **Images** via LXMF image fields
Tff7b72- **Audio** via LXMF audio fields
Tff7b72- **Files** as LXMF file attachments
Tff7b72- **Stickers and GIFs** when enabled in settings
Tff7b72- **User icons** stored as LXMF app data

Large payloads follow LXMF sizing and stamp rules configured in settings.

Tc9d1d9## Propagation nodes

When a peer is not reachable directly, LXMF can store messages on propagation nodes.

MeshChatX can:

Tff7b72- Run a **local propagation node** on your identity
Tff7b72- **Sync** with remote propagation nodes you trust
Tff7b72- **Auto-select** a preferred propagation peer via Ta5d6ff`AutoPropagationManager` from local Ta5d6ff`lxmf.propagation` announces and RNS paths (small sync probe, remembered destination hashes, no central directory)
Tff7b72- **Retry** failed direct deliveries through propagation when configured

Manage nodes from **Tools → Propagation nodes** or related settings entries.

Tc9d1d9## Stamp costs and stranger protection

LXMF uses work proofs (stamps) to limit abuse. Settings let you tune:

Tff7b72- Outbound stamp costs for your messages
Tff7b72- Inbound stamp requirements for unknown senders
Tff7b72- **Stranger protection** options such as blocking strangers, attachments, or links from unknown peers
Tff7b72- **Flood protection** with dynamic inbound stamp costs based on rate

Raise inbound costs when you operate a public-facing node. Lower them on trusted private meshes.

Tc9d1d9## Filtering and blocking

Tff7b72- **Blocked** destinations stop traffic from specific hashes.
Tff7b72- **Sieve filters** (beta) drop inbound messages by pattern.
Tff7b72- **Message blocklist** (beta) complements sieve rules for known bad content.
Tff7b72- **Spam reporting** helps you mark unwanted conversations.

Tc9d1d9## Paper messages

**Tools → Paper message** generates LXMF URIs you can share as QR codes. Another MeshChatX user can ingest the URI to receive the payload. Useful for offline handoff when no live path exists yet.

Tc9d1d9## Forwarding

Ta5d6ff`ForwardingManager` supports alias identities that forward messages between peers according to rules you define. Configure forwarding from **Tools → Forwarder**.

Tc9d1d9## Import and export

You can import and export messages and folder structures for backup or migration. Operations go through the API and respect identity boundaries.

Tc9d1d9## Local retention

**Local message auto-delete** removes old messages after a configured retention period. Tune this in settings if you operate on storage-constrained hardware.

Tc9d1d9## Messaging flow

Ta5d6ff```
Composer in UI
|
v
POST /api/v1/lxmf-messages/send
|
v
LXMRouter (identity-local)
|
+--> Direct path to peer destination
|
+--> Propagation node (when direct delivery fails or policy requires it)
|
v
Peer LXMF router
|
v
WebSocket lxmf_message event on recipient UI
```

Tc9d1d9## Tips

Tff7b72- Set a **display name** in settings so announces show a friendly label.
Tff7b72- Enable **auto-announce** so your Ta5d6ff`lxmf.delivery` aspect stays visible on the mesh.
Tff7b72- Check **Interfaces** if messages stall. No path to the peer means LXMF cannot deliver.
Tff7b72- Review stamp settings before joining busy public meshes.
Tff7b72- While a large message is downloading, the header shows **Cancel incoming**. That stops active LXMF delivery resource transfers (Ta5d6ff`cancel_all_inbound` / per-resource cancel). Outbound send cancel stays on each message menu.

Tc9d1d9## See also

Tff7b72- **Reticulum interfaces** for connectivity
Tff7b72- **Identities, privacy, and security** for auth and HTTPS
Tff7b72- Reticulum manual section on LXMF for protocol detail


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────